package br.com.zumbits.avd.comunication;

import br.com.zumbits.avd.comunication.protocol.Copy;
import br.com.zumbits.avd.comunication.protocol.Delete;
import br.com.zumbits.avd.comunication.protocol.Login;
import br.com.zumbits.avd.comunication.protocol.Logoff;
import br.com.zumbits.avd.comunication.protocol.CreateFolder;
import br.com.zumbits.avd.comunication.protocol.Download;
import br.com.zumbits.avd.comunication.protocol.List;
import br.com.zumbits.avd.comunication.protocol.Move;
import br.com.zumbits.avd.comunication.protocol.Upload;
import br.com.zumbits.avd.comunication.protocol.Version;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Servidor
 */
public interface Comunication {
    //

    public static final String LOGIN = "askLogin";
    //
    public static final String LOGOFF = "askLogoff";
    //
    public static final String DOWNLOAD = "askDownload";
    //
    public static final String UPLOAD = "askUpload";
    //
    public static final String LIST = "askList";
    //
    public static final String MOVE = "askMove";
    //
    public static final String DELETE = "askDelete";
    //
    public static final String CREATE_FOLDER = "askCreateFolder";
    //
    public static final String COPY = "askCopy";
    //
    public static final String VERSION = "askVersion";
    //
    public static final int LOGIN_SUCESS = 0;
    public static final int LOGIN_WRONG_AUTH = 1;
    public static final int LOGIN_ALREADY = 2;
    public static final int LOGIN_UNKNOWN = 3;
    //
    public static final int LOGOFF_SUCESS = 0;
    public static final int LOGOFF_NOT_LOGGED_IN = 1;
    public static final int LOGOFF_UNKNOWN = 2;
    //
    public static final int DOWNLOAD_SUCESS = 0;
    public static final int DOWNLOAD_AUTH_NEEDED = 1;
    public static final int DOWNLOAD_FILE_NOT_FOUND = 2;
    public static final int DOWNLOAD_NOT_DIVIDE_PARTS = 3;
    public static final int DOWNLOAD_UNKNOWN = 4;
    //
    public static final int UPLOAD_SUCESS = 0;
    public static final int UPLOAD_AUTH_NEEDED = 1;
    public static final int UPLOAD_WRONG_VERSION = 2;
    public static final int UPLOAD_UNKNOWN = 3;
    //
    public static final int LIST_SUCESS = 0;
    public static final int LIST_AUTH_NEEDED = 1;
    public static final int LIST_INVALID_ARGS = 2;
    public static final int LIST_UNKNOWN = 3;
    //
    public static final int MOVE_SUCESS = 0;
    public static final int MOVE_AUTH_NEEDED = 1;
    public static final int MOVE_INVALID_ARGS = 2;
    public static final int MOVE_UNKNOWN = 3;
    //
    public static final int DELETE_SUCESS = 0;
    public static final int DELETE_AUTH_NEEDED = 1;
    public static final int DELETE_INVALID_ARGS = 2;
    public static final int DELETE_UNKNOWN = 3;
    //
    public static final int CREATEFOLDER_SUCESS = 0;
    public static final int CREATEFOLDER_AUTH_NEEDED = 1;
    public static final int CREATEFOLDER_WRONG_ARGS = 2;
    public static final int CREATEFOLDER_ALREADY_EXIST = 3;
    public static final int CREATEFOLDER_UNKNOWN = 4;
    //
    public static final int VERSION_SUCESS = 0;
    public static final int VERSION_AUTH_NEEDED = 1;
    public static final int VERSION_INVALID_ARGS = 2;
    public static final int VERSION_UNKNOWN = 3;

    /**
     * 
     */
    public Login login(String xml);

    /**
     * 
     * @throws FileNotFoundException
     * @throws IOException
     */
    public Logoff logoff(String xml);

    /**
     * 
     */
    public Download download(String xml);

    /**
     *
     */
    public Upload upload(String xml);

    /**
     * 
     */
    public List list(String xml);

    /**
     *
     */
    public Move move(String xml);

    /**
     *
     */
    public Delete delete(String xml);

    /**
     *
     */
    public CreateFolder createFolder(String xml);

    /**
     * 
     */
    public Copy copy(String xml);

    /**
     * 
     */
    public Version version(String xml);
}
